package com.delio.client.pagos.aportes;

import java.util.ArrayList;
import java.util.List;

import com.delio.client.idioma.DelioConstants;
import com.delio.client.pagos.contratos.Contratos;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.data.BeanModel;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.util.Format;
import com.extjs.gxt.ui.client.widget.CheckBoxListView;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FormData;
import com.google.gwt.core.client.GWT;

public class PanelAsignarAporte extends Dialog {

	private DelioConstants k = GWT.create(DelioConstants.class);

	private Button btnMarcar;
	private Button btnLeer;
    
	public List<Integer> ids=new ArrayList<Integer>();
    public static Integer ide;
	public static CheckBoxListView<BeanModel> listaAporte;

	public PanelAsignarAporte() {
		super();
		setHeading(k.asignarAporte());
		setFrame(true);
		setButtons("");
		setSize(300, 350);
		setModal(true);
		setLayout(new FitLayout());
	
		
		
		listaAporte = new CheckBoxListView<BeanModel>() {
			@Override
			protected BeanModel prepareData(BeanModel model) {
				String s = model.get("nombre");
				model.set("nombre", Format.ellipse(s, 15));
				return model;
				
			}

		};
		listaAporte.addListener(Events.Select,new Listener<BaseEvent>() {

			@Override
			public void handleEvent(BaseEvent be) {
				
				btnMarcar.setEnabled(true);
				
				
			}
		});
		
	
		
		listaAporte.setStore(Aportes.store);
		listaAporte.setDisplayProperty("nombre");

		add(listaAporte, new FormData("100%"));

		btnMarcar = new Button(k.aceptar());
		btnMarcar.addSelectionListener(new SelectionListener<ButtonEvent>() {

			@Override
			public void componentSelected(ButtonEvent ce) {
				Integer lenght = listaAporte.getChecked().size();
				//if (lenght > 0) {
					List<BeanModel> cheks = listaAporte.getChecked();
					List<DescuentoAporte> lista = new ArrayList<DescuentoAporte>();

					for (int i = 0; i < lenght; i++) {
						BeanModel bm = cheks.get(i);
						Aporte ap = bm.getBean();
                        DescuentoAporte da=new DescuentoAporte();
                        da.setAporte_id(ap.getId());
						lista.add(da);
					 	
					}
					Contratos.ids = lista;
					

			//	}
				hide();
				
			}
			

		});
		
		btnLeer=new Button("Leer");
		btnLeer.addSelectionListener(new SelectionListener<ButtonEvent>() {
			
			@Override
			public void componentSelected(ButtonEvent ce) {
				listaAporte.setEnabled(true);
				setMarcar();
				btnLeer.setEnabled(false);
				
			}
		});
		
		btnMarcar.setEnabled(false);
		addButton(btnLeer);
		addButton(btnMarcar);
		setButtonAlign(HorizontalAlignment.CENTER);
		
		listaAporte.setEnabled(false);
		btnLeer.focus();

		
	}

	public static void setMarcar() {
	
		Integer cont2 = Aportes.store2.getCount();
		Integer cont = Aportes.store.getCount();

		for (int k = 0; k < cont; k++) {
			Integer id = Aportes.store.getModels().get(k).get("id");
			for (int i = 0; i < cont2; i++) {
				Integer aporte_id = Aportes.store2.getModels().get(i)
						.get("aporte_id");
				if (id == aporte_id)
					listaAporte.setChecked(Aportes.store.getAt(k), true);
			}
		}
	
    
	}


}
